package com.stefanini.pe.bbva.bp.in.dao.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.faces.model.SelectItem;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;

import com.ibatis.sqlmap.client.SqlMapClient;
import com.stefanini.pe.bbva.bp.in.dao.iface.GestionSaldosDAOIface;
import com.stefanini.pe.bbva.bp.in.to.SaldoAnualCursor;
import com.stefanini.pe.bbva.bp.in.to.SaldoMensualCursor;

@Repository
public class GestionSaldosDAOImpl extends SqlMapClientDaoSupport implements GestionSaldosDAOIface {

	@Autowired
	public GestionSaldosDAOImpl(SqlMapClient sqlMapClient) {
		super();
		super.setSqlMapClient(sqlMapClient);
	}
	
	@Override
	public List<SelectItem> consultaAnioSaldos() {
		Map<String,Object> param=new HashMap<String,Object>();
		getSqlMapClientTemplate().queryForList("BP_SALDOS_SqlMap.spConsultaAnioSaldos",param);
		return (List<SelectItem>)param.get("OUT_CURSOR");
	}

	@Override
	public List<SaldoAnualCursor> buscarSaldoAnual(String anio,
			String idPerfil, String idTipoCliente, String idUsuarioAsesor) {
		Map<String,Object> param=new HashMap<String,Object>();
		//System.out.println("-"+anio+"-"+idPerfil+"-"+idTipoCliente+"-"+idUsuarioAsesor+"-");
		param.put("IN_ANIO", anio);
		param.put("IN_IDPERFIL", idPerfil);
		param.put("IN_IDTIPOCLIENTE", idTipoCliente);
		param.put("IN_IDUSUARIOASESOR", idUsuarioAsesor);		
		getSqlMapClientTemplate().queryForList("BP_SALDOS_SqlMap.spConsultaSaldoAnual",param);	
		return (List<SaldoAnualCursor>)param.get("OUT_CURSOR");
	}

	@Override
	public List<SaldoMensualCursor> buscarSaldoMensual(String anio, String mes,
			String idPerfil, String idTipoCliente, String idUsuarioAsesor) {
		Map<String,Object> param=new HashMap<String,Object>();
		//System.out.println("-"+anio+"-"+mes+"-"+idPerfil+"-"+idTipoCliente+"-"+idUsuarioAsesor+"-");
		param.put("IN_ANIO", anio);
		param.put("IN_IDMES", mes);
		param.put("IN_IDPERFIL", idPerfil);
		param.put("IN_IDTIPOCLIENTE", idTipoCliente);
		param.put("IN_IDUSUARIOASESOR", idUsuarioAsesor);		 
		getSqlMapClientTemplate().queryForList("BP_SALDOS_SqlMap.spConsultaSaldoMensual",param);	
		return (List<SaldoMensualCursor>)param.get("OUT_CURSOR");
	}

}
